Many businesses, educational institutions, and other organizations use software applications (and/or suites of such applications) to organize their business affairs, track business performance, manage employee data (and/or student data, etc.) and/or the like. Such applications (referred to herein as “business applications”) are often quite complex, relying on numerous database tables to store and manage data for virtually every aspect of an organization's business. Merely by way of example, business applications can include supply chain management (“SCM”) applications that manage raw materials, work-in-process and/or finished products, coordinate with suppliers, and/or the like; customer relations management (“CRM”) applications that are used to track, store and/or manage customer information; financial applications that track and/or analyze the financial performance of the organization; human resources applications that provide management of the human resources functions of the organization; and/or the like. In some cases, these business applications are standalone applications; in other cases, a single business application (and/or suite of applications) might provide some or all such functionality. One type of business application is referred to enterprise resource planning (“ERP”) software. Examples of business applications include, without limitation, JD Edwards EnterpriseOne, PeopleSoft Enterprise applications (including, for example, PeopleSoft Enterprise Student Administration), and the Oracle eBusiness Suite, all available from Oracle Corporation.
One task commonly required of a business application is to process data in one or more data objects (which can include, but is not necessarily limited to, data stored in one or more tables of a database managed by a relational database management system (“RDBMS”) and maintained by the business application, data stored in an object-oriented data structure outside of a database, data stored in a flat tile, spreadsheet, etc., and/or the like). Processing data can include many tasks, including without limitation, adding new data to the data object (e.g. adding new records to a table, adding data to an existing record, etc.) from a data source outside the data object, and/or updating existing data in a data object (e.g., modifying properties or parameters of an object-oriented business object, modifying fields in a database record/table, etc.). Business applications often provide automated (or semi-automated) processes for performing these tasks. Oftentimes, not all available data should be processed, however; instead, the business application's process(es) should be applied selectively, so as to only process the appropriate data.
In the past, the criteria to select a data population to process were predefined and delivered bundled with business application processes. This solution left end users with little or no flexibility on how to refine the selection criteria. Often, consulting services or internal engineering resources were employed to extend or modify the delivered processes to fit the customers' ever changing criteria requirements. Modifying the large number of automated processes and maintaining these enhancements proved costly to customers.
Similarly, tools for updating data in such business objects have exhibited shortcomings. Merely by way of example, in many cases, data objects are not directly-accessible for modification by end users, but instead require access via an application programming interface (“API”). While there may exist tools for modifying a data object via this API, such tools are often inflexible, providing users with insufficient ability to effect changes in the data objects. Moreover, while users may, in some instances, have the ability to update data in a business object directly, in many such instances, indiscriminate modification of a data object (such as modification of a key field in a database record), can produce undesirable and/or catastrophic results ranging from reduced performance to loss of data integrity, among other problems.
Accordingly, there is a need for more flexible tools to select a data population for processing by a business application (or any other type of application). There is a further need for tools that can provide a user with flexibility to update data in data objects while still providing sufficient controls to prevent modifications that may adversely impact the updated business objects.